Crate tor_netdir
source · [−]Expand description
Represents a clients’-eye view of the Tor network.
Overview
The tor-netdir
crate wraps objects from tor-netdoc, and combines
them to provide a unified view of the relays on the network.
It is responsible for representing a client’s knowledge of the
network’s state and who is on it.
This crate is part of Arti, a project to implement Tor in Rust. Its purpose is to expose an abstract view of a Tor network and the relays in it, so that higher-level crates don’t need to know about the particular documents that describe the network and its properties.
There are two intended users for this crate. First, producers
like [tor-dirmgr
] create NetDir
objects fill them with
information from the Tor network directory. Later, consumers
like [tor-circmgr
] use NetDir
s to select relays for random
paths through the Tor network.
Limitations
Only modern consensus methods and microdescriptor consensuses are supported.
Modules
List of directories that ships with Tor, for initial directory operations.
Implements a usable view of Tor network parameters.
Structs
A view of the Tor directory, suitable for use in building circuits.
A partially build NetDir – it can’t be unwrapped until it has enough information to build safe paths.
A view of a relay on the Tor network, suitable for building circuits.
An opaque type representing the weight with which a relay or set of relays will be selected for a given role.
Configuration for determining when two relays have addresses “too close” in the network.
A relay that we haven’t checked for validity or usability in routing.
Enums
An error returned by the network directory code
Possible ways to weight relays when selecting them a random.
Traits
A partial or full network directory that we can download microdescriptors for.
Type Definitions
A Result using the Error type from the tor-netdir crate